<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // Set 是一种数据结构 ES6 才出现
    // 特点: 里面存储的数据是唯一的, 不可能重复
    // const s1 = new Set()
    // s1.add('李辉')
    // s1.add('周静')
    // s1.add('周静')
    // s1.add('潘玉鸟')
    // s1.add('潘玉鸟')
    // console.log(s1)
    // // values 方法可以获取一个迭代器对象
    // const it = s1.values()
    // // 迭代器调用 next() 方法可以获取下一个元素
    // // console.log(it.next().value)
    // // console.log(it.next().value)
    // // console.log(it.next().value)
    // let obj
    // do {
    //   obj = it.next()
    //   console.log(obj.value)
    // } while(!obj.done)
    
    // 有没有某个元素
    // console.log(s1.has('李辉'))
    // 同 values
    // const it = s1.keys()

    // forEach 方法是对遍历形式的简写
    // s1.forEach((item, index, s1) => {
    //   console.log(item, index, s1)
    // })


    // const arr = ['李辉', '周静', '潘玉鸟', '猪小勋', '杨伟', '周静', '潘玉鸟', '猪小勋']
    
    // const s1 = new Set(arr)
    // // arr.forEach(item => {
    // //   s1.add(item)
    // // })
    // console.log(s1)

    // // s1.filter()
    // // 将伪数组转换成真数组
    // const result = Array.from(s1)
    // console.log(result)
    
    // const result = Array.from(new Set(arr))
    // const result = [...new Set(arr)]
    // console.log(result)

    // Map 也是一种 ES6 新出的数据结构
    // Key-Value 键值对
    // const m1 = new Map()
    // m1.set('name', '猪小勋')
    // m1.set('age', 18)
    // m1.set('gender', '男')
    // console.log(m1)

    // // console.log(m1.get('name'))
    // // console.log(m1.get('age'))

    // m1.forEach(item => {
    //   console.log(item)
    // })
  </script>
</body>
</html>